#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include <string>
#include <cstdio>

using namespace std;


void *print(void *args){
    const string name = (char*)args;
    while(true){
        cout << name << ", pid : " << getpid() << "\n" << endl;
        sleep(1);
    }
}

int main(){

    pthread_t tid[5];       // 创建 5 个线程

    char name[64];          // 线程名

    // 创建线程
    for(int i = 0;i<5;i++){
        // 格式化线程名
        snprintf(name, sizeof(name), "%s - %d", "thread test", i);
        pthread_create(tid+i, NULL, print, (void*)name);
        sleep(1);       // 缓解传参 bug
    }

    // 主线程
    while(true){
        cout << "main thread, pid : " << getpid() << endl;
        sleep(3);
    }

    return 0;
}